package sv.gob.mh.dgii.dao.utils;

import sv.gob.mh.dgii.common.Utils;

public enum TipoProceso {
	RECEPCION("00", "Recepcion"), DIGITACION("01", "Digitacion"), VERIFICACION_POST_CONTROL_CALIDAD("20", "Verificado Post control de calidad"), CONTROL_CALIDAD("10",
			"Control de calidad"), POSTEO("70", "Posteo"), LISTA_PARA_POSTEO("60", "Lista para Posteo"), DV_VERIFICACION("73", "Verificacion"), DV_FISCALIZACION("74",
			"Fiscalizacion"), DV_RESOLUCION("75", "Resolucion"), DV_FIRMA("76", "Firma"), DV_NOTIFICACION("77", "Notificacion"), DV_PAGO("78", "A Pago"), DV_PAGADA("79", "Pagada"), DV_ARCHIVO(
			"80", "Archivo"), DV_ECONOMIA("81", "En Economoa"), DV_TASACION("82", "Tasacion");

	private final String descripcion;
	private final String codigo;

	TipoProceso(String codigo, String descripcion) {
		this.codigo = codigo;
		this.descripcion = descripcion;

	}

	public String getCodigo() {
		return codigo;
	}

	public String getDescripcion() {
		return this.descripcion;
	}

	public static String getDescripcionByEstado(String proceso) {
		if (!Utils.isNullOrEmpty(proceso)) {

			if (proceso.equals(RECEPCION.getCodigo())) {
				return RECEPCION.getCodigo() + "-" + RECEPCION.getDescripcion();
			}
			if (proceso.equals(DIGITACION.getCodigo())) {
				return DIGITACION.getCodigo() + "-" + DIGITACION.getDescripcion();
			}
			if (proceso.equals(VERIFICACION_POST_CONTROL_CALIDAD.getCodigo())) {
				return VERIFICACION_POST_CONTROL_CALIDAD.getCodigo() + "-" + VERIFICACION_POST_CONTROL_CALIDAD.getDescripcion();
			}
			if (proceso.equals(CONTROL_CALIDAD.getCodigo())) {
				return CONTROL_CALIDAD.getCodigo() + "-" + CONTROL_CALIDAD.getDescripcion();
			}
			if (proceso.equals(POSTEO.getCodigo())) {
				return POSTEO.getCodigo() + "-" + POSTEO.getDescripcion();
			}
			if (proceso.equals(LISTA_PARA_POSTEO)) {
				return LISTA_PARA_POSTEO.getCodigo() + "-" + LISTA_PARA_POSTEO.getDescripcion();
			}
			return proceso;

		}
		return "Sin proceso";
	}

	public static String getDescripcionByEstadoDv(String proceso) {
		String desc = null;
		if (!Utils.isNullOrEmpty(proceso)) {
			desc = proceso;
			if (proceso.equals(RECEPCION.getCodigo())) {
				desc = RECEPCION.getDescripcion();
			}
			if (proceso.equals(DIGITACION.getCodigo())) {
				desc = "Digitacion";
			}
			if (proceso.equals(CONTROL_CALIDAD.getCodigo())) {
				desc = "Digitacion";
			}
			if (proceso.equals(VERIFICACION_POST_CONTROL_CALIDAD.getCodigo())) {
				desc = VERIFICACION_POST_CONTROL_CALIDAD.getDescripcion();
			}
			if (proceso.equals(LISTA_PARA_POSTEO.getCodigo())) {
				desc = LISTA_PARA_POSTEO.getDescripcion();
			}
			if (proceso.equals(POSTEO.getCodigo())) {
				desc = "Recibida";
			}
			if (proceso.equals(DV_VERIFICACION.getCodigo())) {
				desc = DV_VERIFICACION.getDescripcion();
			}
			if (proceso.equals(DV_FISCALIZACION.getCodigo())) {
				desc = DV_FISCALIZACION.getDescripcion();
			}
			if (proceso.equals(DV_RESOLUCION.getCodigo())) {
				desc = DV_RESOLUCION.getDescripcion();
			}
			if (proceso.equals(DV_FIRMA.getCodigo())) {
				desc = DV_FIRMA.getDescripcion();
			}
			if (proceso.equals(DV_NOTIFICACION.getCodigo())) {
				desc = DV_NOTIFICACION.getDescripcion();
			}
			if (proceso.equals(DV_PAGO.getCodigo())) {
				desc = DV_PAGO.getDescripcion();
			}
			if (proceso.equals(DV_ARCHIVO.getCodigo())) {
				desc = DV_ARCHIVO.getDescripcion();
			}
			if (proceso.equals(DV_PAGADA.getCodigo())) {
				desc = DV_PAGADA.getDescripcion();
			}
			if (proceso.equals(DV_ECONOMIA.getCodigo())) {
				desc = DV_ECONOMIA.getDescripcion();
			}
			if (proceso.equals(DV_TASACION.getCodigo())) {
				desc = DV_TASACION.getDescripcion();
			}
			return desc.toUpperCase();
		}
		return "Sin proceso";
	}
}
